package com.sg.dto.integration.app;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @desc AnnexDto
 * @使用场景
 */
@Data
public class AnnexDto extends BaseDto implements Serializable {

    /**
     * 文档ID
     */
    @ApiModelProperty("文档ID")
    private String unstructuredDataId;

    /**
     * 文档名称
     */
    @ApiModelProperty("文档名称")
    private String unstructuredDataName;

    /**
     * 文档后缀
     */
    @ApiModelProperty("文档后缀")
    private String postfix;

    /**
     * 文件大小
     */
    @ApiModelProperty("文件大小")
    private String fileSize;

    /**
     * 文件相对路径地址
     */
    @ApiModelProperty("文件地址全路径")
    private String fileRelativePathAccess;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Long orderNumber;

    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 文档编号
     */
    @ApiModelProperty("文档编号")
    private String unstructuredDataNumber;

    /**
     * 是否支持预览 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否支持预览")
    private String isSupportPreview;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        AnnexDto that = (AnnexDto) o;
        return (
                unstructuredDataId == that.unstructuredDataId &&
                        unstructuredDataName == that.unstructuredDataName &&
                        postfix == that.postfix &&
                        fileSize == that.fileSize &&
                        fileRelativePathAccess == that.fileRelativePathAccess &&
                        orderNumber == that.orderNumber &&
                        operateTime == that.operateTime &&
                        unstructuredDataNumber == that.unstructuredDataNumber &&
                        isSupportPreview == that.isSupportPreview
        );
    }

    @Override
    public int hashCode() {
        return Objects.hash(
                super.hashCode(),
                unstructuredDataId,
                unstructuredDataName,
                postfix,
                fileSize,
                fileRelativePathAccess,
                orderNumber,
                operateTime,
                unstructuredDataNumber,
                isSupportPreview
        );
    }

}
